package cxf.spring.demo.example;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

/**
 * Пример использования клавиатурных сокращений
 * <p/>
 * User: Vlad Vinichenko (akerigan@gmail.com)
 * Date: 07.03.2009
 * Time: 14:46:51
 */
public class KeyBindingTest extends JFrame {

    class AnAction extends AbstractAction {
        public void actionPerformed(ActionEvent e) {
            System.out.println("OK");
        }
    }

    public KeyBindingTest() {
        super("KeyBindingTest");
        // выход при закрытии окна
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        InputMap im = getRootPane().getInputMap();

        // настраиваем карты команд и входных событий для корневой панели приложения
        ActionMap am = getRootPane().getActionMap();

        // срабатывает при отпускании сочетания Ctrl+A
        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK, true), "Action");
        // срабатывает при печати буквы 'Я'
        im.put(KeyStroke.getKeyStroke('Я'), "Action");

        am.put("Action", new AnAction());

        setSize(200, 200);
        // выводим окно на экран
        setVisible(true);
    }

    // класс нашей команды
    public static void main(String[] args) {
        new KeyBindingTest();
    }
}


